/**
 * 路由类型定义
 * 由于项目使用JavaScript，这里提供JSDoc注释来提供类型提示
 */

/**
 * 路由配置对象
 * @typedef {Object} RouteConfig
 * @property {string} path - 路由路径
 * @property {string} [name] - 路由名称
 * @property {string} [icon] - 路由图标
 * @property {React.Component} [component] - 路由组件
 * @property {RouteConfig[]} [routes] - 子路由
 * @property {string} [redirect] - 重定向路径
 * @property {string[]} [wrappers] - 包装组件
 * @property {string} [access] - 权限控制
 * @property {boolean} [hideInMenu] - 是否隐藏菜单
 * @property {boolean} [hideInBreadcrumb] - 是否隐藏面包屑
 * @property {boolean|string} [layout] - 布局配置
 * @property {RouteMeta} [meta] - 路由元信息
 * @property {boolean} [exact] - 是否精确匹配
 * @property {boolean} [strict] - 是否严格匹配
 * @property {boolean} [sensitive] - 是否敏感匹配
 */

/**
 * 路由元信息
 * @typedef {Object} RouteMeta
 * @property {string} [title] - 标题
 * @property {string} [description] - 描述
 * @property {string[]} [keywords] - 关键词
 * @property {string[]} [permissions] - 权限
 * @property {string[]} [roles] - 角色
 * @property {boolean} [keepAlive] - 是否缓存
 * @property {boolean} [affix] - 是否固定标签页
 * @property {React.ReactNode} [icon] - 图标
 * @property {number} [sort] - 排序
 * @property {boolean} [external] - 外部链接
 * @property {string} [target] - 新窗口打开方式
 */

/**
 * 菜单项
 * @typedef {Object} MenuItem
 * @property {string} key - 菜单键
 * @property {string} label - 菜单标签
 * @property {React.ReactNode} [icon] - 菜单图标
 * @property {MenuItem[]} [children] - 子菜单
 * @property {boolean} [disabled] - 是否禁用
 * @property {boolean} [hidden] - 是否隐藏
 * @property {string} [type] - 菜单类型
 * @property {string} [path] - 菜单路径
 * @property {RouteMeta} [meta] - 菜单元信息
 */

/**
 * 路由权限配置
 * @typedef {Object} RouteAccess
 * @property {string} name - 权限名称
 * @property {string} [description] - 权限描述
 * @property {Function} check - 权限检查函数
 */

/**
 * 路由历史记录项
 * @typedef {Object} RouteHistoryItem
 * @property {string} path - 路径
 * @property {string} title - 标题
 * @property {number} timestamp - 时间戳
 * @property {Object} [params] - 参数
 * @property {Object} [query] - 查询参数
 */

export {};
